package com.cloudbroker.bcs.csvc.push.api.service;

import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.csvc.push.api.vo.request.*;
import com.cloudbroker.bcs.csvc.push.api.vo.response.*;

/**
 * Created by daibd19671 on 2016/9/9.
 */
public interface PushFacadeService {

    /**
     * 获取极光绑定信息
     * @return
     */
    public TagAliasBack getDeviceTagAlias(DeviceTagAliasVo deviceTagAliasVo);

    /**
     * 更新tag  别名
     */
    public HSBCPSBackVO updateDeviceTagAlias (UpdateDeviceTagAliasVo updateDeviceTagAliasVo);

    /**
     * 添加或删除tag
     * @return
     */
    public HSBCPSBackVO addRemoveDevicesFromTag(AddRemoveTagVo addRemoveTagVo);

    /**
     * 按tag推送
     */
    public PushBack sendAllNotificationWithTag(PushTagVo pushTagVo);

    /**
     * 按别名推送
     */
    public PushBack sendAllNotificationWithAlias(PushAliasVo pushAliasVo);

    /**
     * 按设备编号推送
     */
    public PushBack sendAllNotificationWithRegId(PushRegIdVo pushRegIdVo);

    /**
     * 推送所有-广播
     */
    public  PushBack sendNotificationAll(PushAllVo pushAllVo);

    HSBCPSBackVO enableSchedulePush(EnableDisableScheduleVo deleteScheduleVo);

    HSBCPSBackVO disableSchedulePush(EnableDisableScheduleVo deleteScheduleVo);

    HSBCPSBackVO updateSchedulePush(UpdateScheduleVo updateScheduleVo);

    PushReportBack getPushReport(PushReportVo form);


//    HSBCPSBackVO createSingleSchedule(SchedulePushVo schedulePushVo);
//
//    PushBack sendSingleSchedulePushByRegID(SingleSchedulePushRegIDVo schedulePushRegIDVo);
//
//    PushBack sendSingleSchedulePushByTag(SingleSchedulePushTagVo schedulePushTagVo);
//
//    PushBack sendSingleSchedulePushByAlias(SingleSchedulePushAliasVo singleSchedulePushAliasVo);
//
//    PushBack sendSingleSchedulePushAll(SingleSchedulePushAllVo singleSchedulePushAllVo);
}
